package br.com.senac.digipao.servlet;

import br.com.senac.digipao.bean.Produto;
import br.com.senac.digipao.dao.ProdutoDao;
import java.io.IOException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "alteraCadastroProdutoServlet", urlPatterns = {"/alteraCadastroProduto"})
public class AlteraCadastroProdutoServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        String operacao = request.getParameter("operacao");

        switch (operacao) {
            case "Alterar": {
                // pegando o id do produto sendo alterado
                Produto produtoParaAlteracao = (Produto) request.getSession(true).getAttribute("ProdutoParaAlterar");
                // pegando os parâmetros do request
                int idProduto = produtoParaAlteracao.getIdProduto();
                String tipoProduto = request.getParameter("tipoProduto");
                String descricao = request.getParameter("descricao");
                String quantidade = request.getParameter("quantidade");
                String valor = request.getParameter("valor");

                // monta um objeto produto
                Produto produto = new Produto();
                produto.setIdProduto(idProduto);
                produto.setTipoProduto(tipoProduto);
                produto.setDescricao(descricao);
                produto.setQuantidade(quantidade);
                produto.setValor(valor);
                try {
                    ProdutoDao dao = new ProdutoDao();
                    dao.alteraProduto(produto);
                } catch (SQLException ex) {
                    Logger.getLogger(AlteraCadastroProdutoServlet.class.getName()).log(Level.SEVERE, null, ex);
                }
                request.getSession().removeAttribute("ProdutoParaAlterar");
                request.getSession().removeAttribute("ListaProduto");
                RequestDispatcher rd = request.getRequestDispatcher("/media/jsp/alteradoComSucesso.jsp");
                rd.forward(request, response);
                break;
            }
            case "Cancelar": {
                RequestDispatcher rd = request.getRequestDispatcher("/media/jsp/menuPesquisar.jsp");
                rd.forward(request, response);
                break;
            }
        }
    }
}
